package com.sg.dto.integration.component;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementProblemPositionMsgHandleComReqDto
 * @使用场景
 */
@Data
public class ImplementProblemPositionMsgHandleComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 安排主体类型编码 OMS_ORG_ORGANIZATION:组织表 OMS_ORG_DEPT:部门表
     */
    @ApiModelProperty("安排主体类型编码")
    private String arrangeSubjectTypeCode;

    /**
     * 安排主体ID
     */
    @ApiModelProperty("安排主体ID")
    private String arrangeSubjectId;

    /**
     * 接收部门ID
     */
    @ApiModelProperty("接收部门ID")
    private String receiveSubjectId;

    /**
     * 问题状态 QUESTIONABILITY:待解决 RESOLVED:已解决 OVERTIME:已超时 SHELVE:暂搁置 REJECTED:已拒绝 SUSPENDED:已挂起 CLOSED:已关闭
     */
    @ApiModelProperty("问题状态")
    private String questionStatus;

    /**
     * 变更后问题状态 TURN_TO_BE_SOLVED:转待解决 TRUN_TO_OVERTIME:转已超时 TRUN_TO_RESOLVED:转已解决 TRUN_TO_REJECTED:转已拒绝 TRUN_TO_SUSPENDED:转已挂起 TRUN_TO_CLOSED:转已关闭 TRUN_TO_SHELVE:转暂搁置
     */
    @NotNull(message = "变更后问题状态不能为空")
    @ApiModelProperty("变更后问题状态")
    private String alterProblemState;

    /**
     * 负责人账号
     */
    @ApiModelProperty("负责人账号")
    private String principalUserId;

    /**
     * 负责人身份人员ID
     */
    @ApiModelProperty("负责人身份人员ID")
    private String principalOriginalRoleMemberId;

    /**
     * 负责人就职记录ID
     */
    @ApiModelProperty("负责人就职记录ID")
    private String principalInductionRecordId;

    /**
     * 主管账号
     */
    @ApiModelProperty("主管账号")
    private String directorUserId;

    /**
     * 主管身份人员ID
     */
    @ApiModelProperty("主管身份人员ID")
    private String directorOriginalRoleMemberId;

    /**
     * 主管就职记录ID
     */
    @ApiModelProperty("主管就职记录ID")
    private String directorInductionRecordId;

}
